home *** CD-ROM | disk | FTP | other *** search
- { iconmin.pas -- Attach "minimize" icon to application }
-
- program IconMin;
-
- {$R iconmin.res}
-
- uses WinTypes, WinProcs, WObjects;
-
- const
-
- id_Icon = 'APPICON'; { Menu resource ID name }
-
- type
-
- MinApplication = object(TApplication)
- procedure InitMainWindow; virtual;
- end;
-
- PMinWindow = ^MinWindow;
- MinWindow = object(TWindow)
- procedure GetWindowClass(var AWndClass: TWndClass); virtual;
- procedure Paint(PaintDC: HDC; var PaintInfo: TPaintStruct);
- virtual;
- end;
-
-
- { MinApplication }
-
- {- Initialize MinApplication object's window }
- procedure MinApplication.InitMainWindow;
- begin
- MainWindow := New(PMinWindow, Init(nil, 'IconMin'))
- end;
-
-
- { MinWindow }
-
- {- Modify window class to use custom icon }
- procedure MinWindow.GetWindowClass(var AWndClass: TWndClass);
- begin
- TWindow.GetWindowClass(AWndClass);
- AWndClass.HIcon := LoadIcon(HInstance, id_Icon)
- end;
-
- {- Display program's icon in window }
- procedure MinWindow.Paint(PaintDC: HDC; var PaintInfo: TPaintStruct);
- var
- IconBits, OldBitmap: HBitmap;
- MemDC: HDC;
- begin
- DrawIcon(PaintDC, 20, 20, LoadIcon(HInstance, id_Icon));
- IconBits := CreateCompatibleBitmap(PaintDC, 32, 32);
- MemDC := CreateCompatibleDC(PaintDC);
- OldBitmap := SelectObject(MemDC, IconBits);
- BitBlt(MemDC, 0, 0, 32, 32, PaintDC, 20, 20, srcCopy);
- StretchBlt(PaintDC, 75, 20, 32 * 4, 32 * 4, MemDC, 0, 0, 32, 32, srcCopy);
- SelectObject(MemDC, OldBitmap);
- DeleteObject(OldBitmap);
- DeleteDC(MemDC)
- end;
-
- var
-
- MinApp: MinApplication;
-
- begin
- MinApp.Init('MinApp');
- MinApp.Run;
- MinApp.Done
- end.
-
-
- {--------------------------------------------------------------
- Copyright (c) 1991 by Tom Swan. All rights reserved.
- Revision 1.00 Date: 3/25/1991
- ---------------------------------------------------------------}
-